import unittest
from weibo_scraper import get_weibo_tweets_by_name


class TestWeiboScraper(unittest.TestCase):
    def test_get_weibo_tweets_by_htcvive(self):
        """ 测试通过用户名“HTCVIVE虚拟现实”获取微博推文是否成功，并打印出获取到的数据 """
        username = "HTCVIVE虚拟现实"
        tweets = get_weibo_tweets_by_name(name=username, pages=1)  # 只获取第一页数据进行测试

        tweets_list = list(tweets)  # 将生成器转换为列表以便测试和打印

        # 检查是否成功获取到数据
        self.assertIsNotNone(tweets, "未能获取任何推文数据")
        print("获取到的推文数据：")
        for tweet in tweets_list:
            print(tweet)  # 打印每条推文的详细信息

        # 检查返回的数据是否为列表
        self.assertIsInstance(tweets_list, list, "返回的数据类型应为列表")

        # 检查列表中的元素是否为字典（每条推文）
        if tweets_list:
            self.assertIsInstance(tweets_list[0], dict, "列表中的元素应为字典类型")
            print("示例推文内容：", tweets_list[0].get('mblog', {}).get('text', '无内容'))  # 打印示例推文的文本内容

        # 可以添加更多的检查，例如检查推文内容、用户信息等


if __name__ == '__main__':
    unittest.main()
